The present invention relates to data compression methods and apparatus and, more particularly, to arithmetic decoding methods and apparatus.
It is becoming increasingly desirable for video processing equipment to support high quality video applications and multimedia services. Generally, the amount of data video apparatus must process in a given time is increasing. This has led to an ongoing demand for new technologies for high-speed compression and decompression of video data.
Conventional video data compression techniques include H.261, H.262, H.263, and others techniques specified by the International Telecommunication Union (ITU), and MPEG-1, MPEG-2, MPEG-4, and other techniques specified by the Motion Picture Experts Group (MPEG) of the International Organization for Standardization (ISO). Recently, H.264 and MPEG-4 part 10 AVC, which include a high compression rate, have been developed by a joint video team of ITU and ISO. H.264 is being actively developed as a video data compression technology of the next generation in spite of its complexity and general difficulty in implementation, because it offers potentially higher compression rates and adaptability to various network circumstances.
The H.264 standard defines three profiles, including a baseline profile, a main profile, and an extended profile. The profiles use different compression and restoration schemes. The baseline profile compresses video data by entropy coding based on Context-Adaptive Variable Length Coding (CAVLC). The main profile defines characteristics of devices for processing high quality video data, such as HD television. The main profile compresses video data by entropy coding based on Context-Based Adaptive Binary Arithmetic Coding (CABAC). CABAC can achieve good compression performance by using probability estimation and an arithmetic coding scheme based on a probability model selection and statistics of each syntax element depending on a context for each bit.
FIG. 1 is a flowchart illustrating a data compression process based on CABAC according to H.264 standard. The data compression process includes a binarization step S102, a context model selection step S104, an arithmetic encoding step S106, and a probability update step S108. In the binarization step S102, syntax elements having non-binary-values, e.g., transform coefficients or motion vectors, are binarized prior to arithmetic coding because, as described above, CABAC uses binary arithmetic coding, which means that binary decisions (‘0’ and ‘1’) are encoded. In the context model selection step S104, a context model is selected for each binarized bit. The context model is a probability model for each bit of the binarized syntax element. The model for a bit is chosen from a selection of available models depending on the statistics of the recently coded syntax element. The context models represent the relative probabilities of each bit being a “1” or “0.” In the arithmetic encoding step S106, an arithmetic coder encodes each bit according to the associated selected probability model. In the probability update step S108, the selected context model is updated based on the actual coded value.
Data compressed through the process illustrated in FIG. 1 is decoded (restored) by a CABAC decoder. FIG. 2 is a flowchart illustrating a data restoration process in a CABAC decoder. As shown in FIG. 2, the data restoration process includes a context selection step S202, a 1-bit decoding step S204, and a de-binarization step S206. In the context selection step S202, a context used for decoding in an arithmetic decoder is chosen. Then, in the 1-bit decoding step S204, a decoded bit is generated using the selected context and decoding parameters (e.g. value, range) generated during a decoding process for a previously generated decoded bit. In the de-binarization step S206, original syntax elements are restored by determining if the bit decoded in the decoding step is the last bit of the syntax element.
According to the H.264 standard, video data is compressed and restored through the steps in FIGS. 1 and 2. As described referring to FIG. 2, binary coded data are decoded sequentially one bit at a time, that is, after decoding for a current bit is completed, decoding for the next bit begins. The length of syntax elements is variable, not constant. Therefore, it may not be possible to determine whether the next bit belongs to a current syntax element or to the next syntax element before the de-binarization for a current bit is completed. Consequently, it may be difficult to perform CABAC decoding at a high processing speed. Further, the 1-bit decoding step may include a re-normalization, the duration of which is generally variable, and which can further delay processing. Potential problems in a conventional H.264 decoding process as described above may make it difficult to implement a high-speed CABAC decoder having high data processing rate.